package com.ruoyi.user.service;

import java.util.List;
import com.ruoyi.user.domain.UserShoppingCart;

/**
 * 用户购物车Service接口
 *
 * @author ruoyi
 * @date 2025-10-21
 */
public interface IUserShoppingCartService
{
    /**
     * 查询用户购物车
     *
     * @param cartId 用户购物车主键
     * @return 用户购物车
     */
    public UserShoppingCart selectUserShoppingCartByCartId(String cartId);

    /**
     * 查询用户购物车列表
     *
     * @param userShoppingCart 用户购物车
     * @return 用户购物车集合
     */
    public List<UserShoppingCart> selectUserShoppingCartList(UserShoppingCart userShoppingCart);

    /**
     * 新增用户购物车
     *
     * @param userShoppingCart 用户购物车
     * @return 结果
     */
    public int insertUserShoppingCart(UserShoppingCart userShoppingCart);

    /**
     * 修改用户购物车
     *
     * @param userShoppingCart 用户购物车
     * @return 结果
     */
    public int updateUserShoppingCart(UserShoppingCart userShoppingCart);

    /**
     * 批量删除用户购物车
     *
     * @param cartIds 需要删除的用户购物车主键集合
     * @return 结果
     */
    public int deleteUserShoppingCartByCartIds(String[] cartIds);

    /**
     * 删除用户购物车信息
     *
     * @param cartId 用户购物车主键
     * @return 结果
     */
    public int deleteUserShoppingCartByCartId(Long customerId, Long merchantId);
    java.util.List<com.ruoyi.user.domain.vo.CartItemVO> listCartItems(Long customerId, Long merchantId);
    java.math.BigDecimal getCartTotalPrice(Long customerId, Long merchantId);
    void incrementItem(Long customerId, Long merchantId, Long productId);
    void decrementItemOrDelete(Long customerId, Long merchantId, Long productId);
    int insertCartItemByKeys(Long customerId,  Long merchantId, Long productId);
}
